<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:petter_haggholm</id>
  <title>Petter's Blog</title>
  <subtitle>Now 40% less depressing</subtitle>
  <author>
    <name>Petter</name>
  </author>
  <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom"/>
  <updated>2008-10-15T19:26:48Z</updated>
  <lj:journal username="petter_haggholm" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://petter-haggholm.livejournal.com/data/atom" title="Petter's Blog"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:117555</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/117555.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=117555"/>
    <title>This is cool stuff.</title>
    <published>2008-10-15T19:26:48Z</published>
    <updated>2008-10-15T19:26:48Z</updated>
    <category term="geekery"/>
    <content type="html">&lt;p&gt;
From &lt;a href="http://interviews.slashdot.org/article.pl?sid=08/10/15/1639237"&gt;Slashdot’s Blizzcon interview&lt;/a&gt;:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
We have certain algorithms in place that will attempt to analyze data and see what the player is doing. One thing that we are doing this time around that is totally new — our AI cheated in the past. Starcraft and Warcraft III saw the whole map, so the AI could see what the player was building or doing at any given time. The AI in Starcraft 2 now has to scout, and it's much harder to do, but there is a pretty effective AI in there for now.
&lt;/p&gt;
&lt;div style="text-align:right; font-style: italic; font-size: smaller;"&gt;Chris Sigaty (Lead Producer, &lt;em&gt;Starcraft 2&lt;/em&gt;)&lt;/div&gt;
&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:115816</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/115816.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=115816"/>
    <title>Just to mark this date</title>
    <published>2008-10-05T08:23:51Z</published>
    <updated>2008-10-05T08:23:51Z</updated>
    <content type="html">&lt;p&gt;
I have had a seriously life-altering experience and have some work to do in terms of redefining who I am.
&lt;/p&gt;

&lt;p&gt;
It‘s all good.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:115574</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/115574.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=115574"/>
    <title>Idle talk</title>
    <published>2008-10-02T00:32:24Z</published>
    <updated>2008-10-02T00:32:24Z</updated>
    <category term="programming"/>
    <category term="work"/>
    <content type="html">&lt;blockquote&gt;
﻿&lt;span style="color: #cc0000;"&gt;(05:19:55 PM) &lt;b&gt;David:&lt;/b&gt; &lt;/span&gt;another case of PHP informing me of nothing - i'm using file_put_contents only I had the params filename and the filecontent mixed... do I get an error msg... NOOooOooooO&lt;br /&gt;

﻿&lt;span style="color: #204a87;"&gt;(05:21:06 PM) &lt;b&gt;Petter:&lt;/b&gt;&lt;/span&gt; Of course not. It might upset you to get error messages.&lt;br /&gt;

﻿&lt;span style="color: #cc0000;"&gt;(05:25:38 PM) &lt;b&gt;David:&lt;/b&gt;&lt;/span&gt; It should be called 'Delusional Programming'&lt;br /&gt;

&lt;span style="color: #204a87;"&gt;(05:26:53 PM) &lt;b&gt;Petter:&lt;/b&gt;&lt;/span&gt; Programming With Never-Ending Denial&lt;br /&gt;

&lt;span style="color: #204a87;"&gt;(05:26:59 PM) &lt;b&gt;Petter:&lt;/b&gt;&lt;/span&gt; (note handy acronym)&lt;br /&gt;
&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:115334</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/115334.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=115334"/>
    <title>What he wants to be</title>
    <published>2008-10-01T20:13:16Z</published>
    <updated>2008-10-01T20:13:16Z</updated>
    <content type="html">&lt;p&gt;&lt;a href="http://shakespearessister.blogspot.com/2008/10/wait-minute.html"&gt;John McCain is a little too honest for his own good&lt;/a&gt;.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:114894</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/114894.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=114894"/>
    <title>Security questions</title>
    <published>2008-09-26T18:30:40Z</published>
    <updated>2008-09-26T18:30:40Z</updated>
    <category term="computers"/>
    <content type="html">&lt;p&gt;
&lt;q&gt;What is your maiden name?&lt;/q&gt; &lt;q&gt;What is your favourite colour?&lt;/q&gt; &lt;q&gt;How easy do you want to make it for people who’ve read your blog to steal your data?&lt;/q&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.time.com/time/business/article/0,8599,1843984,00.html?imw=Y"&gt;This sort of thing&lt;/a&gt; seems to be discussed a lot recently, especially in the wake of Sarah Palin’s email account getting hacked, but I’ve seen a few other recent mentions of this lame attempt at security, in two different incarnations:
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Password retrieval: Instead of emailing a temporary password to your registered email address, ask a question like the above&lt;/li&gt;
&lt;li&gt;A piss-poor attempt at two-factor security: Ask a question &lt;em&gt;in addition&lt;/em&gt; to a proper password&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
I don’t think I need to talk in-depth about why both cases are bad ideas—these &lt;q&gt;security&lt;/q&gt; questions are &lt;em&gt;invariably&lt;/em&gt; so much easier to crack than even a half-arsed password that they are, at best, a nuisance and no help at all, and at worst a serious liability.
&lt;/p&gt;

&lt;p&gt;
When I can (&lt;em&gt;id est&lt;/em&gt;, when it’s used for retrieval purposes only and not asked in addition to real password, as my bank unfortunately does), I tend to claim that my first pet was named &lt;q&gt;sdfjgokis89u89u23nm&lt;/q&gt; or that I grew up on &lt;q&gt;15 lksjdf9)()*klasdjfdfsfsdlkj Street&lt;/q&gt;, or similar. I keep track of my passwords. &lt;a href="http://www.joelonsoftware.com/items/2008/09/11b.html"&gt;There are good ways of doing so.&lt;/a&gt;
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:114626</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/114626.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=114626"/>
    <title>John McCain doesn’t need an opponent to debate</title>
    <published>2008-09-26T03:47:58Z</published>
    <updated>2008-09-26T03:47:58Z</updated>
    <content type="html">&lt;p&gt;He can debate himself just fine:&lt;/p&gt;

&lt;p style="text-align: center;"&gt;
&lt;lj-embed id="5" /&gt;
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:114024</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/114024.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=114024"/>
    <title>Sheer curiosity</title>
    <published>2008-09-16T00:53:10Z</published>
    <updated>2008-09-16T00:53:10Z</updated>
    <content type="html">&lt;p&gt;
Besides the obvious (&lt;em&gt;id est&lt;/em&gt;, the people listing me as a &lt;q&gt;friend&lt;/q&gt; on LiveJournal), who’s actually reading this blog?
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:113832</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/113832.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=113832"/>
    <title>Allergies, quackery, and remarkable cures</title>
    <published>2008-09-14T08:48:25Z</published>
    <updated>2008-09-14T17:46:48Z</updated>
    <category term="skepticism"/>
    <category term="science"/>
    <content type="html">&lt;p&gt;
I recently received an email from an acquaintance, whom I shall not name here, on the subject of allergies (people who know me tend to bring that subject up now and then). Anything I represent as a quote below will actually be a paraphrase either to clarify or to disguise certain characteristic writing traits.
&lt;/p&gt;

&lt;p&gt;
Here follows a snippet from the first email in our exchange:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
Here is one of the articles (I find it very interesting):&lt;br /&gt;
&lt;a href="http://www.healingdaily.com/detoxification-diet/enzymes.htm"&gt;http://www.healingdaily.com/detoxification-diet/enzymes.htm&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;This is from there:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;It was found that after a person eats cooked food, his/her blood responds immediately by increasing the number of white blood cells. This is a well-known phenomena called 'digestive leukocytosis', in which there is a rise in the number of leukocytes - white blood cells - after eating.&lt;/p&gt;

&lt;p&gt;Since digestive leukocytosis was always observed after a meal, it was considered to be a normal physiological response to eating. No one knew why the number of white cells rises after eating, since this appeared to be a stress response, as if the body was somehow reacting to something harmful such as infection, exposure to toxic chemicals or trauma.&lt;/p&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Apart from the fact that the authors of the website do not know that &lt;q&gt;phenomena&lt;/q&gt; is the plural form of the noun, we can’t learn a whole lot from this, but the briefest of perusals of the website demonstrates it to be a hotbed of quackery, some of it dangerous. As I said in my initial reply,
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
That website is, unfortunately, full of shit. Some of it is actually
very dangerous. Chelation -- which they seem to think is just *great* --
is a favourite of alternative medicine people, but it's a terrible idea.
&lt;/p&gt;

&lt;p&gt;[I’m snipping a lot of stuff here—if you want to know what I think about
chelation, ask.]&lt;/p&gt;

&lt;p&gt;&amp;hellip;&lt;strong&gt;chelation therapies are toxic&lt;/strong&gt;. [&amp;hellip;]
Another interesting fact is that [&amp;hellip;] chelation therapy will leech [sic]
calcium from your body and may lead to hypocalcemia. This can cause you to stop breathing or
cause cardiac arrhythmia, in really bad cases&amp;hellip;&lt;/p&gt;

&lt;p&gt;&amp;hellip;I won't take my medical advice from people I
*know* to be full of shit.
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
I consider this a useful &lt;em&gt;caveat&lt;/em&gt;—the website contains stuff that makes sense to &lt;em&gt;me&lt;/em&gt;, but that doesn’t prevent some of it from being shit, and as a single source it’s therefore useless.
&lt;/p&gt;

&lt;p&gt;
Now, the problem is that although the website, in all fairness, &lt;em&gt;does&lt;/em&gt; contain a reasonable &lt;em&gt;description&lt;/em&gt; of what an allergy is, my acquaintance took away something rather different, judging from my acquaintance’s reply, email #3 in the sequence:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
The whole point is that by eating properly, and giving your body the food it
will be happy with, and not junk it with stuff such as doughnuts, dead burgers,
and cooked &lt;q&gt;tasty&lt;/q&gt; food (just because we like it), you will strengthen the natural fighting
mechanism of your body, which is not now fuctioning properly in most humans, because it is
always busy fighting dead food. 
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
There is a terrible irony here, because an allergic reaction &lt;em&gt;is an immune response&lt;/em&gt;—an immune response to what I call &lt;q&gt;spurious pathogens&lt;/q&gt;, which is my trumped-up way of saying it’s triggered by the wrong things; when I go into anaphylactic shock from exposure to peanut butter, it’s because my immune system thinks I’ve taken poison and is doing all it can to rid me of it (unfortunately killing me in the process). The immune system is therefore not too &lt;em&gt;weak&lt;/em&gt; in a person with allergies; it’s responding &lt;em&gt;too strongly&lt;/em&gt;!
&lt;/p&gt;

&lt;p&gt;
In fact, some very &lt;em&gt;interesting&lt;/em&gt; research has generated the hypothesis that the reason why allergies are so prevalent in the hypersanitised Western nation is because we are, in a sense, &lt;q&gt;too healthy&lt;/q&gt;. Carl Zimmer describes this beautifully in his book &lt;em&gt;Parasite Rex&lt;/em&gt;. The brief gist of it (as I understand it) is that our immune system helps us fight off viruses, bacteria, and parasites in general. Therefore, parasites have evolved mechanisms to &lt;em&gt;suppress&lt;/em&gt; our immune system. In response, evolution comes to &lt;q&gt;supercharge&lt;/q&gt; our immune system to cope with the parasites’ chemical weaponry; they escalate in turn&amp;hellip;and so on, for a few million years, until modern living virtually eliminates whole arrays of parasites and leaves us with supercharged immune systems &lt;em&gt;without&lt;/em&gt; the dose of immunosuppressants they would normally be hampered by. Hence, it may be, they go haywire.
&lt;/p&gt;

&lt;p&gt;
And this isn’t just crazy talk. It’s real science, and experiments have been performed, including &lt;a href="http://www.nytimes.com/2008/07/01/health/research/01prof.html"&gt;one study&lt;/a&gt; (also &lt;a href="http://www.pressdemocrat.com/article/20080729/LIFESTYLE/807290303/1033/NEWS&amp;amp;title=Can_hookworms_help_tame_allergies_"&gt;here&lt;/a&gt;) where test subjects were deliberately infected with (controlled doses of) hookworms, and experienced relief of allergy symptoms.
&lt;/p&gt;

&lt;p&gt;
There’s a kind of terrible backwardness throughout this entire discussion so far, such as when my sparring partner in discussion asks
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Would you rather eat dead but &lt;q&gt;safe&lt;/q&gt; food, or live and energetic (perhaps
with traces of nature's dark side as parasites)?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Need I mention that the most energetic of foods are ones high in quick carbohydrates, simple sugars, and fats? Need I point out that vegetables are &lt;q&gt;good for you&lt;/q&gt; not because they are energetic, but specifically because they are &lt;em&gt;low&lt;/em&gt; in energy density? Apparently I do. As for the &lt;q&gt;dark side&lt;/q&gt;&amp;hellip;
&lt;/p&gt;

&lt;p&gt;
The ironic thing is that this person and I could probably largely agree on what &lt;em&gt;constitutes&lt;/em&gt; a healthy diet, but the mode of thinking is completely different. But then, I do not generally engage in debate to dispute (specifically) a &lt;em&gt;conclusion&lt;/em&gt;, but rather flaws in reasoning. Any foolish way of thinking may lead you accidentally to the right answer, but &lt;em&gt;relying&lt;/em&gt; on it is dangerous. This is the same thing that leads to other &lt;q&gt;alternative medicine&lt;/q&gt; treatments—I will not use the word &lt;q&gt;cures&lt;/q&gt; to describe them. &lt;a href="http://whatstheharm.net/alternativemedicine.html"&gt;Alternative &lt;q&gt;medicine&lt;/q&gt; kills&lt;/a&gt;. (&lt;a href="http://whatstheharm.net/chelationtherapy.html"&gt;Chelation therapy&lt;/a&gt; can certainly kill.) &lt;a href="http://whatstheharm.net/detoxification.html"&gt;Detoxification&lt;/a&gt; and &lt;a href="http://whatstheharm.net/coloncleansing.html"&gt;colon cleansing&lt;/a&gt; kill, too. Even &lt;a href="http://whatstheharm.net/childvegetarianism.html"&gt;raw food diets&lt;/a&gt; have ended up killing people—children—when people failed to apply critical thought.
&lt;/p&gt;

&lt;p&gt;
That is why I am proud to consider myself a skeptic, and that is why I will never abide terrible reasoning, even when no conclusions have ended up catastrophic—yet.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:113473</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/113473.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=113473"/>
    <title>Jiu-jitsu observation</title>
    <published>2008-09-12T05:49:34Z</published>
    <updated>2008-09-12T05:49:34Z</updated>
    <category term="martial arts"/>
    <category term="jiu-jitsu"/>
    <content type="html">&lt;p&gt;
This is chiefly for my own benefit, because &lt;a href="http://www.lifehack.org/articles/productivity/writing-and-remembering-why-we-remember-what-we-write.html"&gt;writing things down helps you remember them&lt;/a&gt; (even if you don’t consult the notes).
&lt;/p&gt;

&lt;p&gt;
Today I was practicing a new move with a guy&amp;hellip;a bit taller than me, but skinnier, probably no &lt;em&gt;vast&lt;/em&gt; weight difference. We’re fairly evenly matched, but I had a much easier time with this particular, new half-guard sweep, with which we were both unfamiliar.
&lt;/p&gt;

&lt;p&gt;
It occurred to me that while it comes naturally to break a technique down into its constituent parts—break balance to one side with a fake scissor sweep; pass your opponent’s posting arm over to the other side; roll him onto your shins; roll backwards over your shoulder, sweeping him—and while there is some sense in thinking about it that way, and certainly &lt;em&gt;teaching&lt;/em&gt; it that way—it &lt;em&gt;doesn’t&lt;/em&gt; make sense to &lt;em&gt;do&lt;/em&gt; it that way, even when practicing.
&lt;/p&gt;

&lt;p&gt;
What has to be kept in mind is that this sweep (like all the throws and sweeps I’ve learned so far) really have two parts: First get your opponent off balance, or force him to load his weight precariously; then capitalise on the imbalance you’ve created to execute a technique. But &lt;em&gt;this has to flow&lt;/em&gt;; it makes no sense to unbalance a person only to give him a moment to recover his balance (perhaps unconsciously) while you think about the next step!
&lt;/p&gt;

&lt;p&gt;
Additionally, a lot of these techniques have a momentum that carries through if you perform them smoothly (in pace, not necessarily skill), and by breaking them up. Into. Discrete. Steps. That momentum is lost. My training parter failed (at first) to do the sweep because he took his time and thought about each step; I succeeded (at once) because I tried to do it slowly and methodically but &lt;em&gt;continuously&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
Some techniques &lt;em&gt;can&lt;/em&gt; be broken up into discrete steps (though they tend to work a lot better when you do them smoothly!), but that requires you to control the opponent throughout—and if the technique relies on momentum or unbalancing, it makes no sense to try.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:113225</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/113225.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=113225"/>
    <title>The joys of development</title>
    <published>2008-09-11T02:13:17Z</published>
    <updated>2008-09-11T02:13:17Z</updated>
    <category term="programming"/>
    <category term="work"/>
    <content type="html">&lt;p&gt;&amp;hellip;Particularly when you’re never quite sure whether some function or object expects (or returns) local or UTC time, and when your database uses at least three different formats for storing them. (I officially hate timezones, and will let this be a reminder never to use anything but UTC for storing dates in an application, ever.)&lt;/p&gt;

&lt;blockquote&gt;&lt;pre&gt;Subject: The time box issue/GM date problem

I *think* I finally fixed it -- please test and verify. (I checked the
configuration tab, which seems to behave properly; I verified that the
profile displays matched, and I verified that saving a time returns the
same time rather than an off-by-an-hour one.)

That was an incredibly irritating bug, and I missed two jiu-jitsu
practices over it, but I introduced it by making a bad assumption, so I
suppose that's fair.

My bad assumption was that I could take a time T, take its timezone
offset, and by adding (hours*3600+minute*60+seconds) and adding the
offset back, I'd get a good time. That was stupid.

The problem is that different timestamps, from different dates, come
back with different timezone offset. I would suspect this may have to do
with policy changes in things like timezones and DST. Specifically, the
timezone offset from UTC on the same machine differs by 3600 seconds --
one hour -- for timestamps in 1970 and timestamps in 2008, respectively.

On the bright side (and the reason why I made those changes in the first
place), we can now say things like

	$d-&amp;gt;toTimestamp()

instead of

	date('G', $time_inseconds)*3600
	         +$minutes_default*60
	         +$seconds_default;

which I think is worth it in the long run. Or so I tell myself to
console myself for the two missed jiu-jitsu practices.

-- 
Petter Häggholm
eRezLife Software
http://www.faqs.org/docs/jargon/T/top-post.html&lt;/pre&gt;&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:113044</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/113044.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=113044"/>
    <title>My website and Internet Explorer (pox be upon it)</title>
    <published>2008-09-07T00:17:35Z</published>
    <updated>2008-09-07T00:17:35Z</updated>
    <category term="programming"/>
    <content type="html">&lt;p&gt;
Since Internet Explorer is &lt;a href="http://www.w3.org/MarkUp/2004/xhtml-faq#ie"&gt;completely incapable&lt;/a&gt; of accepting the proper Content-type for XHTML, &lt;tt&gt;application/xhtml+xml&lt;/tt&gt;, and since &lt;a href="http://www.w3.org/MarkUp/2004/xhtml-faq#mime11"&gt;you should never send XHTML&amp;nbsp;1.1 as &lt;tt&gt;text/html&lt;/tt&gt;&lt;/a&gt;, I decided to change my website from XHTML&amp;nbsp;1.1 to XHTML&amp;nbsp;1.0 Strict. I didn’t really have to change anything besides the &lt;tt&gt;DOCTYPE&lt;/tt&gt;, so it was a very small deal—small enough that even I can be bothered to do that much to accommodate Internet Explorer (p.b.u.i).
&lt;/p&gt;

&lt;p&gt;
However, this just meant that I could legitimately send a content-type of &lt;tt&gt;text/html&lt;/tt&gt;, which IE understands. It didn’t mean that my site &lt;em&gt;worked&lt;/em&gt; in IE, and in fact, it did not.
&lt;/p&gt;

&lt;p&gt;
It turns out that IE has a really, really stupid parsing bug—I cannot call it anything else. While you might easily imagine that anyone writing an X[H]TML parser would have a generic tag-parsing mechanism, where a &lt;tt&gt;&amp;lt;short_tag/&amp;gt;&lt;/tt&gt; is just a &lt;tt&gt;&amp;lt;long_tag&amp;gt;&amp;lt;/long_tag&amp;gt;&lt;/tt&gt; with an empty (perhaps &lt;tt&gt;null&lt;/tt&gt;) content field. That’s how &lt;em&gt;I&lt;/em&gt; do it. Not, it appears, IE: &lt;em&gt;IE cannot parse the tag &lt;tt&gt;&amp;lt;script&amp;nbsp;src="&amp;hellip;"/&amp;gt;&lt;/tt&gt;&lt;/em&gt;. Easy fix, but who the hell would think to look for it? —This is, by the way, a bug not just in IE6, but also in IE7. I can only hope that they’ve fixed it in IE8.
&lt;/p&gt;

&lt;p&gt;
Speaking of IE8, if anyone reading this has a copy of it, I’d be interested to hear how it renders &lt;a href="http://petterhaggholm.net"&gt;my site&lt;/a&gt; as compared to IE7 and/or compared to another browser (Firefox or Opera—I &lt;em&gt;know&lt;/em&gt; it works in those). In particular, I’m &lt;em&gt;not&lt;/em&gt; sending data as &lt;tt&gt;text/html&lt;/tt&gt; to IE8 at this point; until I &lt;em&gt;know&lt;/em&gt; that it’s broken, I’ll give them the benefit of the doubt and treat them as a proper browser capable of dealing with modern web standards.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:112755</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/112755.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=112755"/>
    <title>Petter on Joel Spolsky on Software</title>
    <published>2008-09-05T23:35:52Z</published>
    <updated>2008-09-05T23:35:52Z</updated>
    <category term="programming"/>
    <category term="work"/>
    <content type="html">&lt;p&gt;
I read an interesting article by Joel Spolsky, &lt;a href="http://www.joelonsoftware.com/articles/fog0000000007.html"&gt;In Defense of Not-Invented-Here Syndrome&lt;/a&gt;. It’s worth reading, but in case you're feeling lazy, here are the highlights:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
When you're working on a really, really good team with great programmers, everybody else's code, frankly, is bug-infested garbage, and nobody else knows how to ship on time. When you're a cordon bleu chef and you need fresh lavender, you grow it yourself instead of buying it in the farmers' market, because sometimes they don't have fresh lavender or they have old lavender which they pass off as fresh.
&lt;/p&gt;

&lt;p&gt;[&amp;hellip;]&lt;/p&gt;

&lt;p&gt;
The best advice I can offer:

    &lt;blockquote&gt;&lt;strong&gt;If it's a core business function -- do it yourself, no matter what.&lt;/strong&gt;&lt;/blockquote&gt;

Pick your core business competencies and goals, and do those in house. If you're a software company, writing excellent code is how you're going to succeed. Go ahead and outsource the company cafeteria and the CD-ROM duplication. If you're a pharmaceutical company, write software for drug research, but don't write your own accounting package. If you're a web accounting service, write your own accounting package, but don't try to create your own magazine ads. If you have customers, never outsource customer service.
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Now, I &lt;em&gt;absolutely&lt;/em&gt; agree with his &lt;q&gt;best advice&lt;/q&gt;&amp;mdash;if it’s a core business function, do it yourself. After all, it’s your &lt;em&gt;business&lt;/em&gt; to perform core business functions well, and if you can’t (or don’t) do it better than your competitors, you don’t have a selling point. But to imply even loosely (he does take the edge off it slightly later in his article) that because you write software, all of software is your &lt;q&gt;core business function&lt;/q&gt;, is, I think, so hyperbolic as to be completely misleading. The worst part of the article follows:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The only exception to this rule, I suspect, is if your own people are more incompetent than everyone else, so whenever you try to do anything in house, it's botched up. Yes, there are plenty of places like this. If you're in one of them, I can't help you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
How about an exception for when your people &lt;em&gt;have better things to do&lt;/em&gt;? We use all kinds of libraries, internal and external. We use an external DB compatibility layer, various internal tag generation and Javascript DOM libraries, an internal &lt;abbr title="Object-Relational Mapper"&gt;ORM&lt;/abbr&gt;, an external email library with internal wrappers&amp;hellip; According to the Spolsky logic, here, we should stick with the internal Javascript library, because our devs know our needs best (true); we should stick with the internal ORM; we should possibly even contemplate our own internal DB layer&amp;hellip;this has in fact been brought up, and I think it’s a terrible idea.
&lt;/p&gt;

&lt;p&gt;
Because, let’s face it, DB layers and fancy DOM manipulations are &lt;em&gt;not&lt;/em&gt; our core business functions. Our core business functions are things like writing very flexible management systems for medical schools and university residences with client-defined workflows and customiseable forms and reports. This is what we do. This is what we &lt;em&gt;sell&lt;/em&gt;. This is what our clients pay us to do, and what they cannot get from anyone else (at competitive prices).
&lt;/p&gt;

&lt;p&gt;
This is why I think we should phase out our internal DOM stuff in favour of &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; (which we recently adopted), why we should stick with &lt;a href="http://pear.php.net/package/MDB2"&gt;MDB2&lt;/a&gt; for a DB layer, and why I'd be happier if we had a third-party ORM. Is it because I think that the MDB2 people, the jQuery people, and the hypothetical ORM people are smarter than us, or better programmers? Not at all. It’s because that’s not what we’re paid to do, and unless the tools are &lt;em&gt;really&lt;/em&gt; bad, it’s going to be vastly more productive to work with the third-party tools, find &lt;em&gt;other&lt;/em&gt; third-party tools, or help fix the current tools, in some order of preference.
&lt;/p&gt;

&lt;p&gt;
Maybe Microsoft can afford a team to make a custom compiler for Excel. &lt;em&gt;We&lt;/em&gt; sure as hell can’t. We’ve got enough bugs and feature requests to worry about as it is, and almost none of them are ultimately the fault of any third-party library. (I’ve made three bug reports to the MDB2 project, I believe&amp;mdash;I can assure you that we have rather more bugs than that in our tracker.)
&lt;/p&gt;

&lt;p&gt;
Now, I’m sure that Joel Spolsky is a smart guy who knows all this, and may have known it before I first used a keyboard (there’s a reason I don’t send this as an email to Joel Spolsky). However, given all these ifs, buts, and general caveats, &lt;em&gt;what’s the point of that article&lt;/em&gt;? If the real gist of the article, put succinctly and honestly, should be &lt;q&gt;Not-Invented-Here Syndrome is not a valid concern for your company’s core competency, nor if adequate third-party solutions cannot be found or afforded&lt;/q&gt;, I think &lt;a href="http://www.bluelinecomics.com/Captain%20Obvious.html"&gt;this is a job for&amp;hellip;&lt;/a&gt;
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:112529</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/112529.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=112529"/>
    <title>On unit testing</title>
    <published>2008-09-02T17:55:38Z</published>
    <updated>2008-09-02T21:02:35Z</updated>
    <category term="programming"/>
    <content type="html">&lt;p&gt;Emphases added&amp;mdash;I have nothing else to add.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
The style I follow is to look at all the things the class should do and test each one of them for any conditions that might cause the class to fail. This is not the same as &lt;q&gt;test every public method,&lt;/q&gt; which some programmers advocate. &lt;strong&gt;Testing should be risk driven&lt;/strong&gt;; remember, you are trying to find bugs now or in the future. So &lt;strong&gt;I don't test accessors that just read and write a field. Because they are so simple, I'm not likely to find a bug there.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
This is important because &lt;strong&gt;trying to write too many tests usually leads to not writing enough&lt;/strong&gt;. I've often read books on testing, and my reaction has been to shy away from the mountain of stuff I have to do to test. This is counterproductive, because it makes you think that to test you have to do a lot of work. You get many benefits from testing even if you do only a little testing. The key is to test the areas that you are most worried about going wrong. That way you get the most benefit for your testing efforts.
&lt;/p&gt;

&lt;blockquote&gt;&lt;p style="font-style: italic;"&gt;It is better to write and run incomplete tests than not to run complete tests.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;[&amp;hellip;]&lt;/p&gt;

&lt;p&gt;
When do you stop [adding tests]? I'm sure you have heard many times that you cannot prove a program has no bugs by testing. That's true but does not affect the ability of testing to speed up programming. I've seen various proposals for rules to ensure that you have tested every combination of everything. It's worth taking a look at these, but don't let them get to you. There is a point of diminishing returns with testing, and &lt;strong&gt;there is the danger that by trying to write too many tests, you become discouraged and end up not writing any&lt;/strong&gt;. &lt;strong&gt;You should concentrate on where the risk is.&lt;/strong&gt; Look at the code and see where it becomes complex. Look at the function and consider the likely areas of error. Your tests will not find every bug, but as you refactor you will understand the program better and thus find more bugs. Although I  always start refactoring with a test suite, I invariably add to it as I go along.
&lt;/p&gt;

&lt;div style="text-align:right; font-size: smaller;"&gt;Martin Fowler, &lt;em&gt;Refactoring&lt;/em&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;
What we really need to do at work, however&amp;mdash;or rather, what we need to figure out &lt;em&gt;how&lt;/em&gt; to do, which is far from trivial as our bugs tend to rely on &lt;em&gt;huge&lt;/em&gt; amounts of database state, some from clients that don't give us easy access to it:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;When I get a bug report, I begin by writing a unit test that causes the bug to surface. I write more than one test if I need to narrow the scope of the bug, or if there may be related failures. I use the unit tests to help pin down the bug and to ensure that a similar bug doesn't get past my unit tests again.&lt;/p&gt;

&lt;blockquote&gt;&lt;p style="font-style: italic;"&gt;When you get a bug report, start by writing a unit test that exposes the bug.&lt;/p&gt;&lt;/blockquote&gt;

&lt;div style="text-align:right; font-style: italic; font-size: smaller;"&gt;Ibid.&lt;/div&gt;
&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:112140</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/112140.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=112140"/>
    <title>petterhaggholm.net and self-indulgence</title>
    <published>2008-08-30T21:01:26Z</published>
    <updated>2008-08-30T21:01:26Z</updated>
    <category term="geekery"/>
    <content type="html">&lt;p&gt;
I've &lt;q&gt;launched&lt;/q&gt; a new version of my &lt;a href="http://petterhaggholm.net"&gt;website&lt;/a&gt;. Although there are some content tweaks, the chief differences are
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The backend&amp;mdash;it used to be static HTML with a PHP page for the book list; now it's all dynamically created using &lt;tt&gt;mod_python&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;It now uses &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; for some fancy effects (and should fallback rather gracefully with clients that don't support, or have disabled, Javascript; &lt;em&gt;except&lt;/em&gt; for the book list page&amp;mdash;I still need to make a &lt;q&gt;static&lt;/q&gt; version of that one). I'm particularly fond of the blog widget using that &lt;a href="http://petter-haggholm.livejournal.com/111146.html"&gt;JSON&lt;/a&gt; dump.&lt;/li&gt;
&lt;/ol&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:111983</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/111983.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=111983"/>
    <title>Vaccines</title>
    <published>2008-08-29T19:11:38Z</published>
    <updated>2008-08-29T19:12:07Z</updated>
    <category term="stupidity"/>
    <content type="html">&lt;p&gt;The idiocy of anti-vaccine activists is now threatening the health and lives of people in &lt;a href="http://www.canada.com/vancouversun/news/story.html?id=d52a2724-d5f1-489e-beb1-53f163155dc4"&gt;my area&lt;/a&gt;. The &lt;em&gt;general&lt;/em&gt; problem is fairly well described by a &lt;em&gt;New York Times&lt;/em&gt; editorial (August 24):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
There has been an upsurge of measles cases in the United States, mostly because of parents’ misguided fears of vaccinations. The number is still relatively small — but climbing. In the first seven months of this year, 131 cases were reported to the Centers for Disease Control and Prevention, more than during the same period in any year since 1996. No deaths were reported, but at least 15 patients were hospitalized.&lt;/p&gt;
&lt;p&gt;
Most people have forgotten, but measles was once an uncontrolled scourge that infected three million to four million Americans annually. Victims typically suffered a rash, fever and diarrhea, but severe cases could lead to pneumonia or encephalitis. In bad epidemic years, some 48,000 Americans were hospitalized, 1,000 more were chronically disabled, and 400 to 500 died.&lt;/p&gt;

&lt;p&gt;
Then the development of effective vaccines and compulsory vaccination of schoolchildren drove the disease to the sidelines. Health authorities declared that measles had been eliminated from the United States in 2000. Only a few score cases have been reported annually in recent years, mostly imported from abroad.&lt;/p&gt;

&lt;p&gt;
Nearly all of the outbreaks this year were triggered by a mere 17 travelers or foreign visitors who contracted the virus abroad. The alarming wrinkle this year is that, once the virus is imported, it seems to be spreading to more people than before.&lt;/p&gt;

&lt;p&gt;
Outbreaks have occurred among home-schooled children who escaped the compulsory school vaccinations, and among children whose parents oppose vaccination, for philosophical and religious reasons or fear that the combined measles, mumps and rubella vaccine is dangerous. Many fear that the vaccines cause autism, a theory that has been thoroughly debunked by multiple studies and by authoritative medical organizations.&lt;/p&gt;

&lt;p&gt;
Israel, Switzerland, Austria, Italy and Britain are reporting sizable outbreaks of measles among populations that have refused vaccination. Although vaccination rates remain high in this country, some experts fear that they may be starting to drop. Because it is so contagious, measles is one of the first diseases to reappear when immunization coverage declines. If confidence in all vaccines were to drop precipitously, many diseases would re-emerge and cause far more harm than could possibly result from vaccination.&lt;/p&gt;
&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:111146</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/111146.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=111146"/>
    <title>Have you ever wondered how to embed your LJ blog?</title>
    <published>2008-08-28T06:05:46Z</published>
    <updated>2008-08-28T06:05:46Z</updated>
    <category term="geekery"/>
    <category term="programming"/>
    <content type="html">&lt;p&gt;
&lt;em&gt;I bet you have!&lt;/em&gt; I bet, furthermore, that you've wondered how to do it &lt;em&gt;gracefully&lt;/em&gt;, especially with XHTML, which doesn't allow &lt;tt&gt;document.write()&lt;/tt&gt; which is the only Javascript-based solution that LiveJournal offers out of the box.
&lt;/p&gt;

&lt;p&gt;
Why do I want to use Javascript? Well, I &lt;em&gt;could&lt;/em&gt; use a server-side script to extract the posts, but that's precisely the problem&amp;mdash;it'll be serverside, and why should I make it so? Ultimately, the transaction is between the client and the LiveJournal server. There's no logical need for my webserver to fetch the contents, then paste and send the contents of the blog when the client is perfectly able to fetch it himself. Other solutions, like &lt;tt&gt;&amp;lt;iframe&amp;gt;&lt;/tt&gt;s, are little less unsatisfying: They're ugly and break the page layout.
&lt;/p&gt;

&lt;p&gt;
But how can I gracefully embed the blog in a webpage without &lt;tt&gt;document.write()&lt;/tt&gt;? I thought for a while of various horrible schemes&amp;mdash;could I, for instance, create a hidden &lt;tt&gt;&amp;lt;iframe&amp;gt;&lt;/tt&gt; and extract its contents on page load? I'm still not sure if it's &lt;em&gt;possible&lt;/em&gt;; it would certainly be cumbersome, and if it &lt;em&gt;is&lt;/em&gt; possible it seems to expose the user to cross-site scripting attacks. (If it is possible, and if my &lt;tt&gt;&amp;lt;iframe&amp;gt;&lt;/tt&gt; source referred to anyone &lt;em&gt;else's&lt;/em&gt; LiveJournal, I could Ajax it right back to my server, hidden posts and all&amp;mdash;because frame solutions use the client's cookies to determine privelege levels.)
&lt;/p&gt;

&lt;p&gt;
The answer is &lt;a href="http://community.livejournal.com/suggestions/847906.html"&gt;here&lt;/a&gt;, it uses JSON, and it is customiseable, although it takes a wee bit of tweaking and (unfortunately) some poking at S2 layers. The credit belongs with &lt;span class='ljuser' lj:user='slothman' style='white-space: nowrap;'&gt;&lt;a href='http://slothman.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://slothman.livejournal.com/'&gt;&lt;b&gt;slothman&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.
&lt;/p&gt;

&lt;p&gt;
One of these days I'll actually stop &lt;em&gt;tweaking&lt;/em&gt; the mod_python-based version of my website and &lt;em&gt;launch&lt;/em&gt; it&amp;hellip;
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:110981</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/110981.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=110981"/>
    <title>Brief rant</title>
    <published>2008-08-27T23:34:47Z</published>
    <updated>2008-08-28T04:17:03Z</updated>
    <category term="geekery"/>
    <category term="rants"/>
    <category term="work"/>
    <content type="html">&lt;p&gt;
Dealing with a large volume of bugs in one day is kind of stressful&amp;mdash;we got sixteen show-stopper bug reports today, half of which were duplicates, and all of which were initially blamed on my refactorings. Some of them &lt;em&gt;were&lt;/em&gt; due to me (so I'm annoyed because I broke a few things), though I've fixed all those now; some of them were due to a bug no less than &lt;em&gt;four years old&lt;/em&gt; (so I'm annoyed because I was initially blamed for things that were done years before I even started working here).
&lt;/p&gt;

&lt;p&gt;
But what currently annoys me is that all of them were communicated to me poorly&amp;mdash;in two massive emails with tons of irrelevant conversations cited rather than point-by-point, and all &lt;a href="http://www.faqs.org/docs/jargon/T/top-post.html"&gt;top posted&lt;/a&gt; (reply at the top, quoted message responded to at the bottom).
&lt;/p&gt;

&lt;p&gt;
I realise that top posting is used by a huge number of people&amp;mdash;probably the majority of non-geeks. It is nonetheless a terrible practice, because one of the following must be true:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The quoted message is not needed for context, and its inclusion is redundant, making the email unnecessarily large. Since I don't know if there's anything important below, I have to scroll down to check just in case.&lt;/li&gt;
&lt;li&gt;The quoted message &lt;em&gt;is&lt;/em&gt; needed for context. I have to scroll down to the middle of the email, read the quoted message, then scroll back up to read the reply. If it is a long email, I may have to scroll back and forth to keep track.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Here's what top-posting looks like. Note that when we start reading, we have no idea what is supposed to be a good idea unless we send so little email that the referent for the pronoun &lt;q&gt;that&lt;/q&gt; is obvious.
&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;Yes, I think that's a good idea. It makes it easier for me
to write, and I'm lazy.

-----Original Message-----
From: Petter Häggholm [mailto:petter@fake.com] 
Sent: August 27, 2008 7:12 PM
To: Top Poster
Subject: Something

Do you really think that top-posting is a good idea?
Why or why not?&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;
What inline posting looks like:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;Petter Häggholm wrote:
&amp;lt;
&amp;lt; Do you really think that top-posting is a good idea?

Of course not.

&amp;lt; Why or why not?

Not only does it force scrolling, it also makes it hard to
respond in a concise, point-by-point manner *inline* with
the message.&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;
Honestly, I don't think top-posting is ever a good thing. The good alternative to bottom-posting (or inline posting) is to reply in such a comprehensive way that the quoted message is not necessary for context, and &lt;em&gt;thus should not be included&lt;/em&gt; (if the sender wants to refer to it, he presumably has the power to keep it archived). This would entail writing an email like a regular letter&amp;mdash;I do so on occasion, but that's not the nature of technical communication.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:110726</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/110726.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=110726"/>
    <title>Early drafts of The Lord of the Rings</title>
    <published>2008-08-26T16:30:15Z</published>
    <updated>2008-08-28T04:18:02Z</updated>
    <content type="html">&lt;p&gt;In &lt;em&gt;The Fellowship of the Ring&lt;/em&gt; we are introduced to Strider:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
Suddenly Frodo noticed that a strange-looking weather-beaten man, sitting in the shadows near the wall, was also listening intently to the hobbit-talk. He had a tall tankard in front of him, and was smoking a long-stemmed pipe curiously carved. His legs were stretched out before him, showing high boots of supple leather that fitted him well, but had seen much wear and were now caked with mud. A travel-stained cloak of heavy dark-green cloth was drawn close about him, and in spite of the heat of the room he wore a hood that overshadowed his face; but the gleam of his eyes could be seen as he watched the hobbits.
&lt;/p&gt;

&lt;p&gt;&amp;hellip;&lt;/p&gt;

&lt;p&gt;&lt;q&gt;&amp;hellip;What his right name is I've never heard,&lt;/q&gt; [said Butterbur,] &lt;q&gt;but he's known round here as Strider. Goes about at a great pace on his long shanks; though he don't tell nobody what cause he has to hurry.&lt;/q&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
In the early draft versions, before Strider became Aragorn son of Arathorn heir to Isildur and the kings of Númenor, he appeared somewhat different, and (like Frodo) bore another name:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
Suddenly Bingo noticed that a queer-looking, brown-faced hobbit, sitting in the shadows behind the others, was also listening intently. He had an enormous mug (more like a jug) in front of him, and was smoking a broken-stemmed pipe right under his rather long nose. He was dressed in dark rough brown cloth, and had a hood on, in spite of the warmth, &amp;ndash; and, very remarkably, he had wooden shoes! Bingo could see them sticking out under the table in front of him.
&lt;/p&gt;

&lt;p&gt;&amp;hellip;&lt;/p&gt;

&lt;p&gt;
&lt;q&gt;&amp;hellip;What his right name is I never heard,&lt;/q&gt; [said Butterbur,] &lt;q&gt;but he's known round here as Trotter. You can hear him coming along the road in those shoes: clitter-clap &amp;ndash; when he walks on a path, which isn't often.&lt;/q&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
(From &lt;em&gt;The Return of the Shadow&lt;/em&gt;, volume VI of &lt;em&gt;The History of Middle-earth&lt;/em&gt;.)
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:110284</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/110284.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=110284"/>
    <title>I am officially a Permanent Resident of Canada</title>
    <published>2008-08-21T05:38:04Z</published>
    <updated>2008-08-21T05:38:04Z</updated>
    <content type="html">&lt;p&gt;
The fine print: I don't yet have my Permanent Resident Card; they're mailing it to me (&lt;q&gt;six to eight weeks&lt;/q&gt;). However, I do have the permanent &lt;em&gt;visa&lt;/em&gt;, which is legally equivalent. The &lt;em&gt;only&lt;/em&gt; thing I can't do with this is go on international flights&amp;mdash;commercial carriers ask to see the PR card. In every other respect, my visa is legally equivalent to the PR card&amp;mdash;I can stay in the country permanently, leave on trips and return, work for any employer, and so forth. And I'll have the PR card within the next two months, at which point I can go on international flights&amp;mdash;home for Christmas, for instance!
&lt;/p&gt;

&lt;p&gt;
The only real differences between my status and that of a citizen are that I cannot vote, and that my status can be revoked if I become involved in criminal activity, or if I spend &lt;em&gt;less&lt;/em&gt; than two out of every five years in Canada&amp;mdash;both of which conditions are hardly onerous, especially compared to previous restrictions (being tied to a specific employer, and with an expiry date on the visa).
&lt;/p&gt;

&lt;p&gt;
Fine print aside, however, the chief point remains: After six years of living on temporary permits, bound to specific schools and jobs, I am free and &lt;strong&gt;I am officially a Permanent Resident of Canada&lt;/strong&gt;.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:109938</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/109938.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=109938"/>
    <title>An inch from the goal!</title>
    <published>2008-08-20T06:13:13Z</published>
    <updated>2008-08-20T06:13:13Z</updated>
    <content type="html">&lt;p&gt;
Today, I received my Confirmation of Permanent Residence. This means that all my applications have gone through and have been approved, and all my fees have been paid.
&lt;/p&gt;

&lt;p&gt;
For some silly reason, you can only get the final visa when you enter Canada&amp;mdash;even if you are already in Canada, which means I need to leave and come back again (specifically, I need to cross a land border, so I have to go down to the US border, step across, and step back across), and show my documents and passport to an Immigration agent.
&lt;/p&gt;

&lt;p&gt;
But never mind that. I'll have to somehow organise a strange little trip, hopefully very soon indeed (I'm thinking later this week if possible&amp;hellip;which it may or may not be), but &lt;em&gt;my application was granted&lt;/em&gt;, and within a matter of days, now, I should officially be a Permanent Resident of Canada.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:109652</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/109652.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=109652"/>
    <title>I need to learn</title>
    <published>2008-08-17T01:31:11Z</published>
    <updated>2008-08-17T01:31:11Z</updated>
    <content type="html">&lt;ul&gt;
&lt;li&gt;Time management&lt;/li&gt;
&lt;li&gt;Scheduling&lt;/li&gt;
&lt;li&gt;Planning things in advance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Amazingly, I'm having a life now where I cannot always spontaneously do things at no notice&amp;mdash;even after skipping out on one activity today, I managed to get some very necessary prescriptions renewed, do some grocery shopping, and fit in &lt;em&gt;two&lt;/em&gt; social engagements. Exciting, novel, overwhelming; need to learn manage both that, and what I already have, lest I neglect the latter.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:109529</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/109529.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=109529"/>
    <title>The Amazing Randi rocks the Net</title>
    <published>2008-08-14T20:54:17Z</published>
    <updated>2008-08-14T20:54:17Z</updated>
    <category term="skepticism"/>
    <content type="html">&lt;p style="text-align: center;"&gt;&lt;lj-embed id="4" /&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:109146</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/109146.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=109146"/>
    <title>The Amazing Randi tells it like it is</title>
    <published>2008-08-14T01:50:15Z</published>
    <updated>2008-08-14T01:50:15Z</updated>
    <category term="skepticism"/>
    <content type="html">&lt;p style="text-align: center;"&gt;&lt;br /&gt;&lt;lj-embed id="3" /&gt;&lt;br /&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:108932</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/108932.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=108932"/>
    <title>More life</title>
    <published>2008-08-12T05:33:37Z</published>
    <updated>2008-08-12T05:33:37Z</updated>
    <category term="the mind"/>
    <content type="html">&lt;p&gt;
Some weeks everything just seems to go wrong. Some rare weeks, everything, and I mean &lt;em&gt;everything&lt;/em&gt; of consequence just seems to go right. This is one of the latter sort, and though I know it won't last forever, and life will proceed as a series of ups and downs, I'm floating now, and it's a good reminder of what makes life worth living.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:petter_haggholm:108790</id>
    <link rel="alternate" type="text/html" href="http://petter-haggholm.livejournal.com/108790.html"/>
    <link rel="self" type="text/xml" href="http://petter-haggholm.livejournal.com/data/atom/?itemid=108790"/>
    <title>My life of late</title>
    <published>2008-08-10T09:18:54Z</published>
    <updated>2008-08-10T09:18:54Z</updated>
    <content type="html">&lt;p&gt;
is incredibly remarkable.
&lt;/p&gt;</content>
  </entry>
</feed>
